HAL DAC control functions migration ¶
This section provides information about the HAL ADC control functions migration.
HAL DAC get value ¶
Function description ¶
The
HAL_DAC_GetChannelDataused to read the output data of a specific DAC channel.
|
HAL1 |
HAL2 |
|---|---|
HAL_DAC_GetValue
|
HAL_DAC_GetChannelData
|
HAL DAC configuration channel ¶
- In HAL2, the DAC configuration channel is split into three separate functions:
HAL_DAC_SetConfig(),HAL_DAC_SetConfigChannel()andHAL_DAC_SetConfigChannelSampleAndHold.
|
HAL1 |
HAL2 |
|---|---|
HAL_DAC_ConfigChannel(DAC_HandleTypeDef *hdac,
const DAC_ChannelConfTypeDef *sConfig,
uint32_t Channel);
|
HAL_DAC_SetConfig(hal_dac_handle_t *hdac,
const hal_dac_config_t *p_config);
HAL_DAC_SetConfigChannel(hal_dac_handle_t *hdac, hal_dac_channel_t channel,
const hal_dac_channel_config_t *p_config);
HAL_DAC_SetConfigChannelSampleAndHold(hal_dac_handle_t *hdac,
hal_dac_channel_t channel,
const hal_dac_channel_sample_and_hold_config_t *p_config);
|
Example Usage ¶
|
HAL1 |
HAL2 |
|---|---|
DAC_HandleTypeDef DAC_Handle_HAL_Var;
DAC_ChannelConfTypeDef DAC_ChannelConf_HAL_Var;
DAC_ChannelConf_HAL_Var.DAC_HighFrequency = DAC_HIGH_FREQUENCY_INTERFACE_MODE_ABOVE_80MHZ;
DAC_ChannelConf_HAL_Var.DAC_AutonomousMode = DAC_AUTONOMOUS_MODE_DISABLE;
DAC_ChannelConf_HAL_Var.DAC_DMADoubleDataMode = ENABLE;
DAC_ChannelConf_HAL_Var.DAC_SignedFormat = ENABLE;
DAC_ChannelConf_HAL_Var.DAC_SampleAndHold = DAC_SAMPLEANDHOLD_DISABLE;
DAC_ChannelConf_HAL_Var.DAC_Trigger = DAC_TRIGGER_SOFTWARE;
DAC_ChannelConf_HAL_Var.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE;
DAC_ChannelConf_HAL_Var.DAC_ConnectOnChipPeripheral = DAC_CHIPCONNECT_EXTERNAL;
DAC_ChannelConf_HAL_Var.DAC_UserTrimming = DAC_TRIMMING_USER;
DAC_ChannelConf_HAL_Var.DAC_TrimmingValue = 31;
DAC_ChannelConf_HAL_Var.DAC_SampleAndHoldConfig.DAC_SampleTime = 1023;
DAC_ChannelConf_HAL_Var.DAC_SampleAndHoldConfig.DAC_HoldTime = 1023;
DAC_ChannelConf_HAL_Var.DAC_SampleAndHoldConfig.DAC_RefreshTime = 255;
if (HAL_DAC_ConfigChannel(&DAC_Handle_HAL_Var,
&DAC_ChannelConf_HAL_Var, DAC_CHANNEL_1) != HAL_OK)
{
while(1);
}
|
hal_dac_handle_t DAC_Handle_HAL_Var;
hal_dac_channel_config_t DAC_ChannelConf_HAL_Var;
hal_dac_config_t p_config ;
hal_dac_channel_sample_and_hold_config_t channel_samplehold_config;
p_config.high_frequency_mode = HAL_DAC_HIGH_FREQ_MODE_ABOVE_80MHZ;
if (HAL_DAC_SetConfig(&DAC_Handle_HAL_Var, & p_config) != HAL_OK)
{
}
HAL_DAC_AM_Disable(&DAC_Handle_HAL_Var);
HAL_DAC_EnableChannelDMADoubleDataMode(&DAC_Handle_HAL_Var, HAL_DAC_CHANNEL_1);
DAC_ChannelConf_HAL_Var.data_sign_format = HAL_DAC_SIGN_FORMAT_SIGNED;
HAL_DAC_DisableChannelSampleAndHold(&DAC_Handle_HAL_Var,
HAL_DAC_CHANNEL_1);
DAC_ChannelConf_HAL_Var.trigger = HAL_DAC_TRIGGER_SOFTWARE;
DAC_ChannelConf_HAL_Var.output_buffer = HAL_DAC_OUTPUT_BUFFER_ENABLED;
DAC_ChannelConf_HAL_Var.output_connection = HAL_DAC_OUTPUT_CONNECTION_EXTERNAL;
HAL_DAC_SetChannelBufferCalibrationValue(&DAC_Handle_HAL_Var,
HAL_DAC_CHANNEL_1,
31);
DAC_ChannelConf_HAL_Var.alignment = HAL_DAC_DATA_ALIGN_12_BITS_RIGHT;
if (HAL_DAC_SetConfigChannel(&DAC_Handle_HAL_Var,
HAL_DAC_CHANNEL_1, &DAC_ChannelConf_HAL_Var) != HAL_OK)
{
}
channel_samplehold_config.sample_time_cycle = 1023;
channel_samplehold_config.hold_time_cycle = 1023;
channel_samplehold_config.refresh_time_cycle = 255;
HAL_DAC_SetConfigChannelSampleAndHold(&DAC_Handle_HAL_Var,
HAL_DAC_CHANNEL_1,
&channel_samplehold_config);
|